Copyright  2016 HID Global Corporation/ASSA ABLOY AB. All rights reserved.

================================
HID Global PKCS #11 API C sample
================================

This sample demonstrates how to use the PKCS API version 2.20 provided with ActivID ActivClient 7.1 from a C program.
It implements the following scenarios:
-	How to use a signature key to sign data.
-	How to log on to the card.
-	How to write a secret key on the card, use it to encrypt or decrypt some data and then delete it.
-	How to generate an OTP.

		----------------------------------------------------

1 - Required runtime environment

	- Microsoft Windows 7 SP1 or later (32 and 64-bit editions)
	- ActivID ActivClient 7.1

		----------------------------------------------------

2 - Recommended development environment

	- Microsoft Visual Studio 2015

	Headers and import libraries for the PKCS #11 DLL are located in SDK\PKCS #11\C\Headers and SDK\PKCS #11\C\Libraries folders respectively.
		
	Sample sources are located in the SDK\PKCS #11\C\Sample folder.

	The C sample is provided together with a Visual Studio 2015 solution.
	Simply copy the SDK\PKCS #11\C folder from the ActivClient distribution CD to a hard disk location, and open the Visual Studio solution file.

		----------------------------------------------------

3 - Sample description

	You must be familiar with the PKCS #11 specifications to use this sample.
	
	This command-line sample relies on acpkcs211.dll implementing the PKCS #11 API.
	
	It demonstrates the following PKCS #11 functions: 
C_GetInfo, 
C_Initialize, 
C_Finalize, 
C_GetFunctionList, 
C_GetSlotList, 
C_GetSlotInfo, 
C_GetTokenInfo, 
C_OpenSession, 
C_CloseSession, 
C_FindObjectsInit, 
C_FindObjects, 
C_FindObjectsFinal, 
C_GetAttributeValue, 
C_Login,
C_Logout, 
C_SignInit, 
C_Sign, 
C_EncryptInit,
C_Encrypt, 
C_DecryptInit, 
C_Decrypt, 
C_VerifyInit, 
C_Verify, 
C_VerifyUnblockPINInit (vendor function), 
C_VerifyUnblockPIN (vendor function), 
C_SetPIN, 
C_CreateObject, 
C_DestroyObject